#ifndef __CE_UTILS_CAMERAPROJECTORSETUP_H__
#define __CE_UTILS_CAMERAPROJECTORSETUP_H__


#include <gfx/camera.h>
#include <gfx/projector.h>
#include <math/boundingbox.h>
#include <math/sphere.h>
#include <math/vector.h>

/**
 * \addtogroup utils
 * @{
 */

/**
 * @brief Utility class for setting up ceCamera and ceProjector
 */
class ceCameraProjectorSetup
{
public:
  ceCameraProjectorSetup();

  void SetupPerspective (const ceVector3f& eye,
                         const ceVector3f& up,
                         const ceBoundingBox& dest,
                         ceCamera& camera,
                         ceProjector& projector,
                         ceVector2f& size);

  void SetupPerspective (const ceVector3f& eye,
                         const ceVector3f& up,
                         const ceSphere& dest,
                         ceCamera& camera,
                         ceProjector& projector,
												 float zNear = 1.0f,
												 float zFar = 1024.0f);
};

/** @} */


#endif /* !__CE_UTILS_CAMERAPROJECTORSETUP_H__ */
